// /v1/pa/......  pc端接口需要登录
// /v1/ua/......  用户端接口需要登录
// /v1/pn/......  pc端接口不需要登录
// /v1/un/......  用户端接口不需要登录

// /v1/wn/......  微信端接口


module.exports = (options, app) => {

    async function _pc(ctx, next) {
        const sessionid = ctx.cookies.get('juyou.session.id');

        const redisSessions = await app.redis.get('member').hgetall('juyou_session_');

        const sessionValue = redisSessions[sessionid];

        console.log(sessionValue);

        if(sessionValue === undefined){
            ctx.body = {
                errmsg : 'no login',
                errcode : 1001,
            };
        }else{

            const qminfo = await app.redis.get('member').get('juyou_session_' + sessionid + '_info');

            ctx._user = JSON.parse(qminfo)._user;
            ctx._wxaccount = JSON.parse(qminfo)._wxaccount;

            if(next) await next();

            console.log('auth next 后面');
        }
    }


    async function _user(ctx, next) {

        const method = ctx.method;
        let company_code = 'LW12345';

        // if(method == 'GET'){
        //     company_code = ctx.query.company_code;
        // }else{
        //     company_code = ctx.request.body.company_code;
        // }

        // ctx.logger.info(company_code);

        const sessionid = ctx.cookies.get('juyou-ticket-' + company_code);
        // console.log('sessionid');
        // console.log(sessionid);
        // ctx.logger.info(sessionid);
        const qminfo = await app.redis.get('member').hgetall('juyou_ticket_' + sessionid);
        // console.log(qminfo);
        // ctx.logger.info(qminfo);

        if(qminfo == null || qminfo.id == undefined){
            ctx.body = {
                errmsg : 'no login',
                errcode : 1001,
            };
        }else{
            ctx._user = qminfo;
            if(next) await next();
        }

    }



    async function _wx(ctx, next) {
        const company_code = ctx.query.company_code;


    }

    return async function auth(ctx, next) {

        //判断是否需要登录
        let path_arr = ctx.path.split('/');

        const what = path_arr[2][0];
        const needAuth = path_arr[2][1];

        //无需登录
        if(needAuth === 'n')
        {
            await next();
        }
        //pc端需要登录
        else if(needAuth == 'a' && what === 'p')
        {
            console.log('pc端需要登录');
            await _pc(ctx, next);
            
        }
        //用户端需要登录
        else if(needAuth == 'a' && what === 'u')
        {
            console.log('用户端需要登录');
            await _user(ctx, next);   
        }
        //微信端接口
        else if(needAuth == 'a' && what === 'w'){
            console.log('微信端');


        }
        //不符合约定
        else
        {
            ctx.body = {
                errmsg : '接口不符合规定',
                errcode : 1002,
            };
        }


        
    };
};
